From: Florian Müllner Date: Thu, 8 Apr 2021 15:19:37 +0000 (+0200) Subject: workspacesView: Fix PgUp/PgDown shortcut X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~70 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=fc54e0bed8dbab238394f6852d611d64b81f314e;p=gnome-shell.git workspacesView: Fix PgUp/PgDown shortcut We still try to switch to the workspace above/below, which doesn't do anything since the layout is now horizontal. Part-of: --- diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 1af45d88d..2c9da5c9b 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -1144,20 +1144,36 @@ class WorkspacesDisplay extends St.Widget { _onKeyPressEvent(actor, event) { if (!this.mapped) return Clutter.EVENT_PROPAGATE; - let workspaceManager = global.workspace_manager; - let activeWs = workspaceManager.get_active_workspace(); - let ws; + + const { workspaceManager } = global; + const vertical = workspaceManager.layout_rows === -1; + const rtl = this.get_text_direction() === Clutter.TextDirection.RTL; + + let dir; switch (event.get_key_symbol()) { case Clutter.KEY_Page_Up: - ws = activeWs.get_neighbor(Meta.MotionDirection.UP); + if (vertical) + dir = Meta.MotionDirection.UP; + else if (rtl) + dir = Meta.MotionDirection.RIGHT; + else + dir = Meta.MotionDirection.LEFT; break; case Clutter.KEY_Page_Down: - ws = activeWs.get_neighbor(Meta.MotionDirection.DOWN); + if (vertical) + dir = Meta.MotionDirection.DOWN; + else if (rtl) + dir = Meta.MotionDirection.LEFT; + else + dir = Meta.MotionDirection.RIGHT; break; default: return Clutter.EVENT_PROPAGATE; } - Main.wm.actionMoveWorkspace(ws); + + const ws = workspaceManager.get_active_workspace().get_neighbor(dir); + if (ws) + Main.wm.actionMoveWorkspace(ws); return Clutter.EVENT_STOP; }